package com.ruoyi.web.core.tool;

import com.ruoyi.common.utils.DateUtils;

import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.concurrent.ThreadLocalRandom;

/**
 * 编号生成器
 *
 * @author Jyl
 */
public class CodeUtils
{
    private static final SimpleDateFormat dateFormat = new SimpleDateFormat(DateUtils.YYYYMMDDHHMMSS);
    private static final int RANDOM_NUM_BOUND = 10000; // 定义随机数范围

    public String generate(String prefix)
    {
        // 生成时间戳部分
        String timestamp = dateFormat.format(new Date());

        // 生成随机数部分
        int randomNumber = ThreadLocalRandom.current().nextInt(RANDOM_NUM_BOUND);

        // 组合成订单号
        return prefix + timestamp + String.format("%04d", randomNumber);
    }

    public static void main(String[] args)
    {
        // 示例：生成订单号，假设业务前缀为"ORD"
        for (int i = 0; i < 10; i++)
        {
            String orderNumber = new CodeUtils().generate("ORD");
            System.out.println("Generated Order Number: " + orderNumber);
        }
    }
}